package com.free.commons.log;

import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;

/**
 * 
 * Copyright(C) 2012 
 * 版权所有(C)2012 
 * <p>
 * Compiler: JDK1.6.0
 * <p>
 * 版本:  1.0版
 * 文件名：Log.java
 * <p>
 * 作者: wy2009mydream
 * <p>
 * 创建时间: 2012-3-29
 * <p>
 * 负责人: wy2009mydream
 * <p>
 * 修改者：wy2009mydream（修改者姓名）,修改时间：2012-3-29
 * <p>
 */

public class Log {
	
	// Logger实例
	private Logger loger;
	
	// 将Log类封装成单实例的模式，独立于其他类。以后要用到日志的地方只要获得Log的实例就可以方便使用
	private static Log log;

	// 构造函数，用于初始化Logger配置需要的属性
	private Log() {
		
		// 获得当前目录路径
		String filePath = this.getClass().getResource("/").getPath();
		
		// 找到log4j.properties配置文件所在的目录(已经创建好)
		filePath = filePath.substring(1).replace("bin", "src");
		
		// 获得日志类loger的实例
		loger = Logger.getLogger(this.getClass());
		
		// loger所需的配置文件路径
		PropertyConfigurator.configure(filePath+"\\com\\free\\commons\\log\\log4j.properties");
	}

	public static Log getLoger() {
		if (log != null){
			return log;
		}
		else{
			return new Log();
		}
	}

	public static void main(String args[]) {
		Log log = Log.getLoger();
		try {
			// 引发异常
			int a = 2 / 0;
			System.out.println(a);
		} catch (Exception e) {
			// 控制台打印异常信息
			//e.printStackTrace();
			// 写入到日子文件
			log.loger.error("error", e);
		}
	}
	

	
}
